gsk: Warn on cairo errors during gsk_render_node_draw()
authorBenjamin Otte <otte@redhat.com>
Fri, 23 Dec 2016 04:56:17 +0000 (05:56 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 23 Dec 2016 07:11:01 +0000 (08:11 +0100)
It's the same warning we use inside GTK for when stuff weirdly goes
wrong.

gsk/gskrendernode.c

index fd410f67a5f3dfb40994b12a9ce3f11473bda12b..d6a14b3b1d2750d2904957c89cda7943c6c3db23 100644 (file)
@@ -253,6 +253,7 @@ gsk_render_node_draw (GskRenderNode *node,
 {
   g_return_if_fail (GSK_IS_RENDER_NODE (node));
   g_return_if_fail (cr != NULL);
+  g_return_if_fail (cairo_status (cr) == CAIRO_STATUS_SUCCESS);
 
   cairo_save (cr);
 
@@ -283,6 +284,14 @@ gsk_render_node_draw (GskRenderNode *node,
     }
 
   cairo_restore (cr);
+
+  if (cairo_status (cr))
+    {
+      g_warning ("drawing failure for render node %s '%s': %s",
+                 node->node_class->type_name,
+                 gsk_render_node_get_name (node),
+                 cairo_status_to_string (cairo_status (cr)));
+    }
 }
 
 #define GSK_RENDER_NODE_SERIALIZATION_VERSION 0